有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果FileInputStream未关闭,java应用程序将崩溃?

我使用FileInputStream进行读取。我的web应用程序中的jks文件。不幸的是,我忘记关闭代码中的流,它被转移到了生产环境中。FileInputStream不是静态流,而是局部变量

我将有一个很好的机会在一个月或两个月内解决这个问题

同时,我的应用程序是否有可能因为这个错误而崩溃。?我是否需要尽快移动修复程序,或者它可以等待两个月

请推荐我


共 (2) 个答案

  1. # 1 楼答案

    将文件打开的时间过长可能至少会产生以下有害影响:

    1. 资源泄漏,因此文件句柄不足
    2. 针对需要使用该文件的下一个进程锁定该文件

    现在修好它

  2. # 2 楼答案

    很可能不是。只要FileInputStream对象可由Java垃圾收集器回收FileInputStreamFileOutputStream以及环绕系统资源的许多其他对象,例如文件句柄,使用finalize方法在垃圾收集时执行清理。依赖这种行为并不是最好的解决方案,因为GC是不确定的,文件句柄可能会在您使用完它之后很长时间返回到操作系统

    只有当使用了文件锁定并且您试图过快地重新打开同一文件或者您阻止GC收集流对象时,它才会真正崩溃